package com.hsnn.medstgmini.base.dict.service.impl;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.alibaba.fastjson.JSONObject;
import com.hsnn.medstgmini.base.dict.dao.DicPharDao;
import com.hsnn.medstgmini.base.dict.model.DicPhar;
import com.hsnn.medstgmini.base.dict.service.DicPharManager;
import com.hsnn.medstgmini.util.Pagination;

/**
 * @category 药理分类字典
 * @author CCL
 */
@Service
public class DicPharManagerImpl implements DicPharManager {

	@Autowired
	private DicPharDao dicPharDao;

	/**
	 * @category 根据id查询药理分类
	 * @param id
	 * @return
	 */
	public DicPhar getDicPharById(String id) {
		return dicPharDao.getDicPharById(id);
	}


	/**
	 * @category 查询药理分类维护记录列表
	 * @param result
	 * @param dicPhar
	 * @return
	 */
	public Pagination getDicPharLogList(Pagination page) {
		return dicPharDao.getDicPharLogList(page);
	}
	
	@SuppressWarnings("unchecked")
	@Override
	public JSONObject getDicPharList(Pagination page,boolean isLoaded){
		page = dicPharDao.getDicPharList(page);
		List<Object> list = (List<Object>) page.getRows();
		StringBuffer str = new StringBuffer();
		str.append("{'total':11,'page':1,'records':11,'rows':[");
		if(list.size()>0){
			for(int i = 0;i<list.size();i++){
				Object[] obj = (Object[]) list.get(i);
				str.append("{'id':'")
				   .append(obj[1]==null?"":obj[1].toString())
				   .append("', 'cell':[")
				   .append("1,")//复选框
				   .append("1,'")//操作列
				   .append(obj[0]==null?"":obj[0].toString())//hierarchy
				   .append("','")
				   .append(obj[1]==null?"":obj[1].toString())//pharId
				   .append("','")
				   .append(obj[2]==null?"":obj[2].toString())//pharCode
				   .append("','")
				   .append(obj[3]==null?"":obj[3].toString())//pharName
				   .append("',")
				   .append(obj[4]==null?"":obj[4].toString())//status
				   .append(",")
				   .append(obj[5]==null?"":obj[5].toString())//级别，层次  0为根节点
				   .append(",")
				   .append(obj[6]==null?"null":"'"+obj[6].toString()+"'")//father_id
				   .append(",")
				   .append(obj[7]==null?"":obj[7].toString())//是否为叶子节点
				   .append(",")
				   .append(obj[8]==null?"":obj[8].toString());//是否默认展开
				if(isLoaded){
					 str.append(",")
					   .append("false");//是否已经加载过子节点
				}
				   str.append("]},");
			}
			str.deleteCharAt(str.length()-1);
		}
		str.append("]}");
		JSONObject objson = JSONObject.parseObject(str.toString());
		return objson;
	}
	
	/**
	 * @category 获取药理分类日志详情 
	 * @param logId
	 * @return
	 */
	@Override
	public List<Map<String,Object>> getPharLogDetail(String logId){
		return dicPharDao.getPharLogDetail(logId);
	}
	
	/**
	 * @category 启用|停用 
	 * @param page
	 * @return
	 */
	@Transactional
	@Override
	public Pagination changeStatus(Pagination page){
		return dicPharDao.changeStatus(page);
	}
	
	/**
	 * @category 查重 
	 * @param page
	 * @return
	 */
	@Override
	public List<Object> checkRepeat(String column, String value,String pharId){
		return dicPharDao.checkRepeat(column, value, pharId);
	}
	
	/**
	 * @category 编辑保存
	 * @date 2015年7月13日
	 */
	@Transactional
	@Override
	public void editSave(Pagination page){
		dicPharDao.editSave(page);
	}
	
	/**
	 * @category 新增保存
	 * @date 2015年7月13日
	 */
	@Transactional
	@Override
	public void addSave(Pagination page){
		dicPharDao.addSave(page);
	}
	
	/**
	 * 根据条件获取不分页数据
	 * @param page
	 * @return page
	 */
	@Override
	public Pagination getDicPharNoPage(Pagination page){
		return dicPharDao.getDicPharNoPage(page);
	}
}
